package com.yizhuoyan.his.service.doctor.outpatient;

import com.yizhuoyan.his.ao.DisposalRecordAo;
import com.yizhuoyan.his.exception.HISDataNotExistsException;

/**
 * 处置申请服务
 */
public interface DisposalApplyService {

    /**
     * 暂存处置申请(state为1)
     * @param ao 处置申请信息
     * @throws NullPointerException 如果ao为空
     * @throws com.yizhuoyan.his.exception.HISIllegalParameterException 如果参数验证不通过
     * @throws Exception 其它情况
     */
    void addDisposalRecordTemporary(DisposalRecordAo ao)throws Exception;

    /**
     * 开立处置申请(state为2)
     * @param doctorId 开立医生id
     * @param ao 处置申请信息
     * @throws NullPointerException 如果ao或doctorId为空
     * @throws com.yizhuoyan.his.exception.HISIllegalParameterException 如果参数验证不通过
     * @throws Exception 其它情况
     */
    void addDisposalRecordOpen(Long doctorId, DisposalRecordAo ao)throws Exception;

    /**
     * 删除处置申请
     * @param id 处置申请id
     * @throws NullPointerException 如果id为空
     * @throws HISDataNotExistsException 如果id不存在
     * @throws Exception 其它情况
     */
    void removeDisposalRecord(Long id)throws Exception;

    /**
     * 废除处置申请(state为0)
     * @param id 处置申请id
     * @throws NullPointerException 如果id为空
     * @throws HISDataNotExistsException 如果id不存在
     * @throws Exception 其它情况
     */
    void  nullifyDisposalRecord(Long id)throws Exception;


}
